package com.xxxx.server.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xxxx.server.enums.EnabledChangeEnum;
import com.xxxx.server.pojo.Admin;
import com.xxxx.server.pojo.RespBean;
import com.xxxx.server.pojo.Role;

import javax.servlet.http.HttpServletRequest;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author zhoubin
 * @since 2020-09-07
 */
public interface IAdminService extends IService<Admin> {

	/**
	 * 登录
	 * @param username
	 * @param password
	 * @return
	 */
	RespBean login(String username, String password, String code, HttpServletRequest request);

	/**
	 * 根据用户名获取用户对象
	 * @param username
	 * @return
	 */
	Admin getAdminByUserName(String username);

	/**
	 * 根据用户id获取角色
	 * @param adminId
	 * @return
	 */
	List<Role> getRoles(Integer adminId);
	/**
	 *查找操作员
	 * @param keywords
	 * @return
	 */
	List<Admin> selectAdminList(String keywords);

	/**
	 * 操作员管理更改用户禁用
	 * @param admin
	 * @return
	 */
	EnabledChangeEnum enabledChange(Map<String, Object> admin);

	/**
	 * 操作员管理删除用户
	 * @param id
	 */
	void deleteAdminById(Integer id);

	/**
	 * 查询所有角色列表
	 * @return
	 */
    List<Role> selectAllRoleList();

	/**
	 * 修改用户角色信息
	 * @param adminId
	 * @param rids
	 */
	void updateAdminRole(Integer adminId, String rids);

	/**
	 * 根据用户id修改用户基本信息
	 * @param map
	 * @return
	 */
    boolean updateAdminInfo(Map<String,Object> map);

	/**
	 * 根据用户id修改用户密码信息
	 * @param map
	 * @return
	 */
	boolean updateAdminPasswordInfo(LinkedHashMap<String, Object> map);

	boolean updateAdminUserFaceById(Integer id,String path);
}
